package com.zeroone.star.project.volunteer;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zeroone.star.project.dto.volunteer.VolunteerDTO;
import com.zeroone.star.project.vo.JsonVO;
import springfox.documentation.spring.web.json.Json;

import java.util.List;

/*
1.发布志愿
2.修改志愿
3.删除志愿
4.查看资源
 */
public interface VolunteerApis {
    /**
     * @Author car
     * @Description //TODO
     * @Date 17:57 2024/1/25
     * @Param []
     * @return com.zeroone.star.project.vo.JsonVO<java.util.List<com.zeroone.star.project.dto.volunteer.VolunteerDTO>>
     **/
    JsonVO<List<VolunteerDTO>> listAllVolunteer();


    
    /**
     * @Author car
     * @Description //TODO 添加志愿信息
     * @Date 16:28 2024/1/31
     * @Param [com.zeroone.star.project.dto.volunteer.VolunteerDTO]
     * @return com.zeroone.star.project.vo.JsonVO<com.zeroone.star.project.dto.volunteer.VolunteerDTO>
     **/
    JsonVO<VolunteerDTO> addVolunteer(VolunteerDTO volunteerDTO);


    /**
     * @Author car
     * @Description //TODO 更新志愿信息
     * @Date 14:54 2024/2/1
     * @Param [com.zeroone.star.project.dto.volunteer.VolunteerDTO]
     * @return com.zeroone.star.project.vo.JsonVO<com.zeroone.star.project.dto.volunteer.VolunteerDTO>
     **/
    JsonVO<VolunteerDTO> updateVolunteer(VolunteerDTO volunteerDTO);


    /**
     * @Author car
     * @Description //TODO 分页查询志愿信息
     * @Date 16:08 2024/2/1
     * @Param [com.zeroone.star.project.dto.volunteer.VolunteerDTO]
     * @return com.zeroone.star.project.vo.JsonVO<com.zeroone.star.project.dto.volunteer.VolunteerDTO>
     **/
    JsonVO<Page<VolunteerDTO>> selectVolunteerByPage(VolunteerDTO volunteerDTO);

    /**
     * @Author car
     * @Description //TODO 批量修改志愿状态信息
     * @Date 16:09 2024/2/1
     * @Param [java.lang.String[]]
     * @return com.zeroone.star.project.vo.JsonVO<com.zeroone.star.project.dto.volunteer.VolunteerDTO>
     **/
    JsonVO<VolunteerDTO> modifyVolunteerStatus(String[] ids);
    
    /**
     * @Author car
     * @Description //TODO 删除志愿信息
     * @Date 16:13 2024/2/1
     * @Param [java.lang.String[]]
     * @return com.zeroone.star.project.vo.JsonVO<java.lang.Integer>
     **/
    JsonVO<Integer> removeVolunteer(String[] ids);

    JsonVO<VolunteerDTO> selectVolunteerById(String id);
}
